%--------------------------------------------
% 图注应为  符号串与DFA转换规则
% 这张图的说明正文部分应注明，图中正方向称为分解过程，负方向称为合成过程
% 分解和合成的概念可以在前面写一个定义，看起来应该更清晰：定义3.x：符号串转换为DFA的过程称为分解，DFA转换为符号串的过程称为合成
% 图55中闭包的转换规则与56结合成一个图
% 55下边的正文部分改为 而对于闭包型正规式，有如下5种转换方式
%--------------------------------------------
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=5em,semithick]
    \tikzstyle{every state}=[text=black]

    \node[state] (i1) {i};
    \node[state] (j1) [right of=i1] {j};
    \path (i1) edge node {$e_1 \mid e_2$} (j1);
    
    \node[state] (i2) at (15em,0em) {i};
    \node[state] (j2) at (20em,0em) {j};

    \draw ([xshift=-0.1em,yshift=0.5em]j1.east)--([xshift=0.2em,yshift=0.5em]i2.west) node [midway,above] {分解};
    \draw ([xshift=0.1em,yshift=-0.5em]i2.west)--([xshift=-0.2em,yshift=-0.5em]j1.east) node [midway,below] {合成};
    
    \path (i2) edge [bend left] node {$e_1$} (j2);
    \path (i2) edge [bend right] node [below] {$e_2$} (j2);

    \node[state] (i3) [below of=i1] {i};
    \node[state] (j3) [below of=j1] {j};
    \path (i3) edge node {$e_1 \cdot e_2$} (j3);

    \node[state] (i4) [below of=i2] {i};
    \node[state] (k) [below of=j2] {k};
    \node[state] (j4) [right of=k] {j};
    \path (i4) edge node {$e_1$} (k);
    \path (k) edge node {$e_2$} (j4);

    \draw ([xshift=-0.1em,yshift=-4.5em]j1.east)--([xshift=0.2em,yshift=-4.5em]i2.west) node [midway,above] {分解};
    \draw ([xshift=0.1em,yshift=-5.5em]i2.west)--([xshift=-0.2em,yshift=-5.5em]j1.east) node [midway,below] {合成};

    
\end{tikzpicture}